package com.ruoyi.report.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("report_benefit")
public class ReportBenefit implements Serializable {

    @TableId(type = IdType.AUTO)
    private Long reportId;

    /** 岗位类别 */
    private String postType;

    /** 岗位类别 */
    @TableField(exist = false)
    @Excel(name = "工号")
    private String userNo;

    /** 岗位类别 */
    @TableField(exist = false)
    @Excel(name = "姓名")
    private String userName;

    /** 岗位类别 */
    @TableField(exist = false)
    @Excel(name = "性别", dictType = "sys_user_sex")
    private String userSex;

    /** 岗位类别 */
    @TableField(exist = false)
    @Excel(name = "人员类型", dictType = "basic_user_type")
    private String userType;

    /** 岗位类别 */
    @TableField(exist = false)
    private Long deptId;

    /** 岗位类别 */
    @TableField(exist = false)
    @Excel(name = "所属单位")
    private String deptName;

    /** 岗位类别 */
    @TableField(exist = false)
    @Excel(name = "身份证号")
    private String idCard;

    /** 技术类别 */
    @TableField(exist = false)
    @Excel(name = "技术类别", dictType = "basic_user_technical")
    private String technicalType;

    /** 编制情况 */
    @TableField(exist = false)
    @Excel(name = "编制情况", dictType = "basic_work_duty")
    private String workDuty;

    /** 级别 */
    @TableField(exist = false)
    @Excel(name = "级别", dictType = "basic_duty_level")
    private String dutyLevel;

    /** 聘任职称等级 */
    @TableField(exist = false)
    @Excel(name = "聘任职称等级", dictType = "basic_post_level")
    private String postLevel;

    /** 取得职称等级 */
    @TableField(exist = false)
    @Excel(name = "取得职称等级", dictType = "basic_post_level")
    private String obtainLevel;

    /** 出生年月 */
    @TableField(exist = false)
    @Excel(name = "出生年月")
    private String birthday;

    /** 来院时间 */
    @TableField(exist = false)
    @Excel(name = "来院时间")
    private String hospitalTime;

    /** 考勤月份 */
    @Excel(name = "考勤月份")
    private String benefitMonth;

    /** 机关事业养老（单位） */
    @Excel(name = "机关事业养老(单位)", cellType = Excel.ColumnType.NUMERIC)
    private String a1;

    /** 机关事业养老（个人） */
    @Excel(name = "机关事业养老(个人)", cellType = Excel.ColumnType.NUMERIC)
    private String a2;

    /** 企业养老（单位） */
    @TableField(exist = false)
    @Excel(name = "企业养老(单位)", cellType = Excel.ColumnType.NUMERIC)
    private String b1;

    /** 企业养老（个人） */
    @TableField(exist = false)
    @Excel(name = "企业养老(个人)", cellType = Excel.ColumnType.NUMERIC)
    private String b2;

    /** 失业保险（单位） */
    @Excel(name = "失业保险(单位)", cellType = Excel.ColumnType.NUMERIC)
    private String c1;

    /** 失业保险（个人） */
    @Excel(name = "失业保险(个人)", cellType = Excel.ColumnType.NUMERIC)
    private String c2;

    /** 医疗保险（单位） */
    @Excel(name = "医疗保险(单位)", cellType = Excel.ColumnType.NUMERIC)
    private String d1;

    /** 医疗保险（个人） */
    @Excel(name = "医疗保险(个人)", cellType = Excel.ColumnType.NUMERIC)
    private String d2;

    /** 工伤保险 */
    @Excel(name = "工伤保险", cellType = Excel.ColumnType.NUMERIC)
    private String e;

    /** 年金（单位） */
    @Excel(name = "年金(单位)", cellType = Excel.ColumnType.NUMERIC)
    private String f1;

    /** 年金（个人） */
    @Excel(name = "年金(个人)", cellType = Excel.ColumnType.NUMERIC)
    private String f2;

    /** 公务员医疗 */
    @Excel(name = "公务员医疗", cellType = Excel.ColumnType.NUMERIC)
    private String g;

    /** 企业年金（单位） */
    @TableField(exist = false)
    @Excel(name = "企业年金(单位)", cellType = Excel.ColumnType.NUMERIC)
    private String h1;

    /** 企业年金（个人） */
    @TableField(exist = false)
    @Excel(name = "企业年金(个人)", cellType = Excel.ColumnType.NUMERIC)
    private String h2;

    /** 公积金（单位） */
    @Excel(name = "公积金(单位)", cellType = Excel.ColumnType.NUMERIC)
    private String j1;

    /** 公积金（个人） */
    @Excel(name = "公积金(个人)", cellType = Excel.ColumnType.NUMERIC)
    private String j2;

    /** 滞纳金 */
    @Excel(name = "滞纳金", cellType = Excel.ColumnType.NUMERIC)
    private String k;

    private Date createTime;

    /** 请求参数 */
    @TableField(exist = false)
    private Map<String, Object> params;

    public Map<String, Object> getParams()
    {
        if (params == null)
        {
            params = new HashMap<>();
        }
        return params;
    }

}
